/*
 * Decompiled with CFR 0.150.
 * 
 * Could not load the following classes:
 *  cn.hutool.core.collection.CollUtil
 *  cn.hutool.core.util.ObjectUtil
 *  com.alibaba.fastjson.JSON
 *  de.felixroske.jfxsupport.FXMLController
 *  javafx.collections.FXCollections
 *  javafx.collections.ObservableList
 *  javafx.event.EventHandler
 *  javafx.fxml.FXML
 *  javafx.fxml.Initializable
 *  javafx.scene.Node
 *  javafx.scene.control.Alert
 *  javafx.scene.control.Alert$AlertType
 *  javafx.scene.control.Button
 *  javafx.scene.control.CheckBox
 *  javafx.scene.control.ScrollPane
 *  javafx.scene.control.TableCell
 *  javafx.scene.control.TableColumn
 *  javafx.scene.control.TableView
 *  javafx.scene.control.cell.PropertyValueFactory
 *  javafx.scene.input.KeyCode
 *  javafx.scene.input.KeyEvent
 *  javafx.scene.layout.AnchorPane
 *  javafx.scene.layout.VBox
 *  javafx.stage.Stage
 *  javafx.util.Callback
 *  org.springframework.beans.factory.annotation.Autowired
 *  org.springframework.util.CollectionUtils
 */
package com.gys.controller.acceptPo;

import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSON;
import com.gys.common.business.AcceptUtil;
import com.gys.common.data.HttpJson;
import com.gys.common.data.KeyValue;
import com.gys.common.util.CacheUtil;
import com.gys.common.util.ConstUtil;
import com.gys.common.util.SpringUtil;
import com.gys.controller.BaseController;
import com.gys.controller.acceptPo.AcceptPoController;
import com.gys.controller.acceptPo.AddTypeController;
import com.gys.controller.index.IndexController;
import com.gys.data.accept.AcceptInData;
import com.gys.data.accept.GetPoDetailOutData;
import com.gys.data.accept.PoOutData;
import com.gys.data.example.GetLoginStoreOutData;
import com.gys.data.example.GetUserOutData;
import com.gys.view.acceptPo.AddView;
import de.felixroske.jfxsupport.FXMLController;
import java.net.URL;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.ResourceBundle;
import java.util.Timer;
import java.util.TimerTask;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.event.EventHandler;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.Node;
import javafx.scene.control.Alert;
import javafx.scene.control.Button;
import javafx.scene.control.CheckBox;
import javafx.scene.control.ScrollPane;
import javafx.scene.control.TableCell;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.scene.input.KeyCode;
import javafx.scene.input.KeyEvent;
import javafx.scene.layout.AnchorPane;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
import javafx.util.Callback;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;

@FXMLController
public class AddAcceptPoController
extends BaseController
implements Initializable {
    private final int pageSize = ConstUtil.DEFAULT_PAGESIZE;
    private final int defaultPageCount = ConstUtil.DEFAULT_PAGECOUNT;
    private ObservableList<PoOutData> observableTableList = FXCollections.observableArrayList(new ArrayList());
    private ObservableList<GetPoDetailOutData> detailObservableTableList = FXCollections.observableArrayList(new ArrayList());
    @FXML
    private AnchorPane anchorPane;
    @FXML
    private ScrollPane scrollPane;
    @FXML
    private VBox vBox;
    @FXML
    private Button enterBtn;
    @FXML
    private TableView<PoOutData> tableView;
    @FXML
    private TableView<GetPoDetailOutData> tableView1;
    @FXML
    private TableColumn<PoOutData, CheckBox> checkBox;
    @FXML
    private TableColumn<PoOutData, String> poId;
    @FXML
    private TableColumn<PoOutData, String> poDate;
    @FXML
    private TableColumn<PoOutData, String> poType;
    @FXML
    private TableColumn<PoOutData, String> totalAmount;
    @FXML
    private TableColumn<PoOutData, String> totalQty;
    @FXML
    private TableColumn<PoOutData, String> poApproveStatus;
    @FXML
    private TableColumn<GetPoDetailOutData, String> indexNo;
    @FXML
    private TableColumn<GetPoDetailOutData, String> proCode;
    @FXML
    private TableColumn<GetPoDetailOutData, String> proName;
    @FXML
    private TableColumn<GetPoDetailOutData, String> proPrice;
    @FXML
    private TableColumn<GetPoDetailOutData, String> orderQty;
    @FXML
    private TableColumn<GetPoDetailOutData, String> proFactoryName;
    @FXML
    private TableColumn<GetPoDetailOutData, String> proPlace;
    @FXML
    private TableColumn<GetPoDetailOutData, String> proForm;
    @FXML
    private TableColumn<GetPoDetailOutData, String> proUnit;
    @FXML
    private TableColumn<GetPoDetailOutData, String> proSpecs;
    @FXML
    private TableColumn<GetPoDetailOutData, String> proRegisterNo;
    @Autowired
    private AcceptPoController acceptPoController;
    @Autowired
    private AddTypeController addTypeController;
    @Autowired
    private IndexController indexController;

    public void initialize(URL location, ResourceBundle resources) {
        this.scrollPane.setPrefWidth(this.getContentWidth());
        this.scrollPane.setPrefHeight(this.getContentHeight());
        this.vBox.setPrefWidth(this.getContentWidth());
        this.vBox.setPrefHeight(this.getContentHeight());
        this.tableView.setPrefWidth(this.getContentWidth());
        this.init();
    }

    @Override
    public void init() {
        if (ObjectUtil.isEmpty(this.anchorPane)) {
            return;
        }
        new Timer().schedule(new TimerTask(){

            @Override
            public void run() {
                AddView view = SpringUtil.getBean(AddView.class);
                Stage stage = (Stage)view.getView().getScene().getWindow();
                stage.getScene().setOnKeyReleased((EventHandler)new EventHandler<KeyEvent>(){

                    public void handle(KeyEvent event) {
                        if (event.getCode() == KeyCode.ENTER) {
                            AddAcceptPoController.this.saveAdd();
                            return;
                        }
                        if (event.getCode() == KeyCode.ESCAPE) {
                            AddAcceptPoController.this.closeWindows();
                            return;
                        }
                    }
                });
            }
        }, 1000L);
        this.initTable();
    }

    @FXML
    private void saveAdd() {
        Alert alert = this.createAlert(Alert.AlertType.INFORMATION, "\u63d0\u793a\u4fe1\u606f", null);
        List<Integer> indexList = this.getSelectIndex();
        if (ObjectUtil.isEmpty(indexList)) {
            alert.setContentText("\u8bf7\u9009\u62e9\u8bb0\u5f55");
            alert.showAndWait();
            return;
        }
        String poId = "";
        for (Integer index : indexList) {
            poId = ((PoOutData)this.observableTableList.get(index - 1)).getPoId();
        }
        AcceptInData inData = new AcceptInData();
        inData.setGsahPoid(poId);
        inData.setGsahBrId(((GetLoginStoreOutData)CacheUtil.get("store")).getStoCode());
        inData.setGsahFrom(((KeyValue)this.addTypeController.getStore().getValue()).getValue());
        HttpJson rsp = AcceptUtil.savePo(inData);
        if (rsp.isSuccess()) {
            this.acceptPoController.initTable(0, poId);
            this.init();
            this.anchorPane.getScene().getWindow().hide();
        } else {
            alert.showAndWait();
        }
    }

    @FXML
    private void closeWindows() {
        this.init();
        this.anchorPane.getScene().getWindow().hide();
    }

    public TableView<PoOutData> initTable() {
        AcceptInData inData = new AcceptInData();
        inData.setGsadProId(this.addTypeController.getProductCode().getText());
        HttpJson rsp = AcceptUtil.poList(inData);
        if (!rsp.isSuccess()) {
            Alert alert = this.createAlert(Alert.AlertType.INFORMATION, "\u63d0\u793a\u4fe1\u606f", rsp.getMsg());
            alert.showAndWait();
            return new TableView();
        }
        List<PoOutData> list = JSON.parseArray((String)rsp.getMsg(), PoOutData.class);
        int i = 0;
        for (PoOutData outData : list) {
            if ("1".equals(outData.getPoApproveStatus())) {
                outData.setPoApproveStatus("\u5df2\u5ba1\u6838");
            } else {
                outData.setPoApproveStatus("\u672a\u5ba1\u6838");
            }
            outData.setPoType("\u91c7\u8d2d\u5355");
            outData.setIndex(i + 1);
            ++i;
        }
        this.observableTableList.clear();
        this.observableTableList = FXCollections.observableArrayList((Collection)list);
        this.bingTableCell();
        this.tableView.setItems(this.observableTableList);
        return this.tableView;
    }

    private void bingTableCell() {
        this.checkBox.setCellValueFactory(cellData -> ((PoOutData)cellData.getValue()).getCheckBox().getCustomCheckBox());
        this.checkBox.setCellFactory(col -> {
            TableCell<PoOutData, CheckBox> cell = new TableCell<PoOutData, CheckBox>(){

                protected void updateItem(CheckBox item, boolean empty) {
                    super.updateItem(item, empty);
                    this.setGraphic((Node)item);
                    if (item != null) {
                        item.setOnMouseClicked(col -> {
                            if (CollUtil.isEmpty((Collection)AddAcceptPoController.this.observableTableList)) {
                                return;
                            }
                            int index = this.getIndex();
                            for (int i = 0; i < AddAcceptPoController.this.observableTableList.size(); ++i) {
                                if (i == index) continue;
                                ((PoOutData)AddAcceptPoController.this.observableTableList.get(i)).getCheckBox().setSelectStatus(false);
                            }
                            if (((PoOutData)AddAcceptPoController.this.observableTableList.get(index)).getCheckBox().isSelected().booleanValue() && ObjectUtil.isNotEmpty(((PoOutData)AddAcceptPoController.this.observableTableList.get(index)).getPoId())) {
                                AcceptInData inData = new AcceptInData();
                                inData.setClientId(((GetUserOutData)CacheUtil.get("logInUser")).getClient());
                                inData.setStoreCode(((GetLoginStoreOutData)CacheUtil.get("store")).getStoCode());
                                inData.setGsahVoucherId(((PoOutData)AddAcceptPoController.this.observableTableList.get(index)).getPoId());
                                List dataList = new ArrayList();
                                HttpJson httpJson = AcceptUtil.poDetailList(inData);
                                if (httpJson.isSuccess()) {
                                    dataList = JSON.parseArray((String)httpJson.getMsg(), GetPoDetailOutData.class);
                                } else {
                                    Alert alert = AddAcceptPoController.this.createAlert(Alert.AlertType.INFORMATION, "\u63d0\u793a\u4fe1\u606f", httpJson.getMsg());
                                    alert.showAndWait();
                                }
                                AddAcceptPoController.this.initDetailTableView(dataList);
                            } else {
                                AddAcceptPoController.this.detailObservableTableList.clear();
                            }
                        });
                    }
                }
            };
            return cell;
        });
        this.poId.setCellValueFactory((Callback)new PropertyValueFactory(this.poId.getId()));
        this.poDate.setCellValueFactory((Callback)new PropertyValueFactory(this.poDate.getId()));
        this.poType.setCellValueFactory((Callback)new PropertyValueFactory(this.poType.getId()));
        this.totalAmount.setCellValueFactory((Callback)new PropertyValueFactory(this.totalAmount.getId()));
        this.totalQty.setCellValueFactory((Callback)new PropertyValueFactory(this.totalQty.getId()));
        this.poApproveStatus.setCellValueFactory((Callback)new PropertyValueFactory(this.poApproveStatus.getId()));
    }

    private TableView<GetPoDetailOutData> initDetailTableView(List<GetPoDetailOutData> dataList) {
        this.detailObservableTableList.clear();
        this.detailObservableTableList = FXCollections.observableArrayList(dataList);
        this.bingDetailTableCell();
        this.tableView1.setItems(this.detailObservableTableList);
        return this.tableView1;
    }

    private void bingDetailTableCell() {
        this.indexNo.setCellValueFactory((Callback)new PropertyValueFactory(this.indexNo.getId()));
        this.proCode.setCellValueFactory((Callback)new PropertyValueFactory(this.proCode.getId()));
        this.orderQty.setCellValueFactory((Callback)new PropertyValueFactory(this.orderQty.getId()));
        this.proName.setCellValueFactory((Callback)new PropertyValueFactory(this.proName.getId()));
        this.proFactoryName.setCellValueFactory((Callback)new PropertyValueFactory(this.proFactoryName.getId()));
        this.proPlace.setCellValueFactory((Callback)new PropertyValueFactory(this.proPlace.getId()));
        this.proPrice.setCellValueFactory((Callback)new PropertyValueFactory(this.proPrice.getId()));
        this.proForm.setCellValueFactory((Callback)new PropertyValueFactory(this.proForm.getId()));
        this.proUnit.setCellValueFactory((Callback)new PropertyValueFactory(this.proUnit.getId()));
        this.proSpecs.setCellValueFactory((Callback)new PropertyValueFactory(this.proSpecs.getId()));
        this.proRegisterNo.setCellValueFactory((Callback)new PropertyValueFactory(this.proRegisterNo.getId()));
    }

    private List<Integer> getSelectIndex() {
        ArrayList<Integer> ids = new ArrayList<Integer>();
        if (!CollectionUtils.isEmpty(this.observableTableList)) {
            for (PoOutData i : this.observableTableList) {
                if (!i.getCheckBox().isSelected().booleanValue()) continue;
                ids.add(i.getIndex());
            }
        }
        return ids;
    }

    public int getPageSize() {
        return this.pageSize;
    }

    public int getDefaultPageCount() {
        return this.defaultPageCount;
    }

    public ObservableList<PoOutData> getObservableTableList() {
        return this.observableTableList;
    }

    public ObservableList<GetPoDetailOutData> getDetailObservableTableList() {
        return this.detailObservableTableList;
    }

    public AnchorPane getAnchorPane() {
        return this.anchorPane;
    }

    public ScrollPane getScrollPane() {
        return this.scrollPane;
    }

    public VBox getVBox() {
        return this.vBox;
    }

    public Button getEnterBtn() {
        return this.enterBtn;
    }

    public TableView<PoOutData> getTableView() {
        return this.tableView;
    }

    public TableView<GetPoDetailOutData> getTableView1() {
        return this.tableView1;
    }

    public TableColumn<PoOutData, CheckBox> getCheckBox() {
        return this.checkBox;
    }

    public TableColumn<PoOutData, String> getPoId() {
        return this.poId;
    }

    public TableColumn<PoOutData, String> getPoDate() {
        return this.poDate;
    }

    public TableColumn<PoOutData, String> getPoType() {
        return this.poType;
    }

    public TableColumn<PoOutData, String> getTotalAmount() {
        return this.totalAmount;
    }

    public TableColumn<PoOutData, String> getTotalQty() {
        return this.totalQty;
    }

    public TableColumn<PoOutData, String> getPoApproveStatus() {
        return this.poApproveStatus;
    }

    public TableColumn<GetPoDetailOutData, String> getIndexNo() {
        return this.indexNo;
    }

    public TableColumn<GetPoDetailOutData, String> getProCode() {
        return this.proCode;
    }

    public TableColumn<GetPoDetailOutData, String> getProName() {
        return this.proName;
    }

    public TableColumn<GetPoDetailOutData, String> getProPrice() {
        return this.proPrice;
    }

    public TableColumn<GetPoDetailOutData, String> getOrderQty() {
        return this.orderQty;
    }

    public TableColumn<GetPoDetailOutData, String> getProFactoryName() {
        return this.proFactoryName;
    }

    public TableColumn<GetPoDetailOutData, String> getProPlace() {
        return this.proPlace;
    }

    public TableColumn<GetPoDetailOutData, String> getProForm() {
        return this.proForm;
    }

    public TableColumn<GetPoDetailOutData, String> getProUnit() {
        return this.proUnit;
    }

    public TableColumn<GetPoDetailOutData, String> getProSpecs() {
        return this.proSpecs;
    }

    public TableColumn<GetPoDetailOutData, String> getProRegisterNo() {
        return this.proRegisterNo;
    }

    public AcceptPoController getAcceptPoController() {
        return this.acceptPoController;
    }

    public AddTypeController getAddTypeController() {
        return this.addTypeController;
    }

    public IndexController getIndexController() {
        return this.indexController;
    }

    public void setObservableTableList(ObservableList<PoOutData> observableTableList) {
        this.observableTableList = observableTableList;
    }

    public void setDetailObservableTableList(ObservableList<GetPoDetailOutData> detailObservableTableList) {
        this.detailObservableTableList = detailObservableTableList;
    }

    public void setAnchorPane(AnchorPane anchorPane) {
        this.anchorPane = anchorPane;
    }

    public void setScrollPane(ScrollPane scrollPane) {
        this.scrollPane = scrollPane;
    }

    public void setVBox(VBox vBox) {
        this.vBox = vBox;
    }

    public void setEnterBtn(Button enterBtn) {
        this.enterBtn = enterBtn;
    }

    public void setTableView(TableView<PoOutData> tableView) {
        this.tableView = tableView;
    }

    public void setTableView1(TableView<GetPoDetailOutData> tableView1) {
        this.tableView1 = tableView1;
    }

    public void setCheckBox(TableColumn<PoOutData, CheckBox> checkBox) {
        this.checkBox = checkBox;
    }

    public void setPoId(TableColumn<PoOutData, String> poId) {
        this.poId = poId;
    }

    public void setPoDate(TableColumn<PoOutData, String> poDate) {
        this.poDate = poDate;
    }

    public void setPoType(TableColumn<PoOutData, String> poType) {
        this.poType = poType;
    }

    public void setTotalAmount(TableColumn<PoOutData, String> totalAmount) {
        this.totalAmount = totalAmount;
    }

    public void setTotalQty(TableColumn<PoOutData, String> totalQty) {
        this.totalQty = totalQty;
    }

    public void setPoApproveStatus(TableColumn<PoOutData, String> poApproveStatus) {
        this.poApproveStatus = poApproveStatus;
    }

    public void setIndexNo(TableColumn<GetPoDetailOutData, String> indexNo) {
        this.indexNo = indexNo;
    }

    public void setProCode(TableColumn<GetPoDetailOutData, String> proCode) {
        this.proCode = proCode;
    }

    public void setProName(TableColumn<GetPoDetailOutData, String> proName) {
        this.proName = proName;
    }

    public void setProPrice(TableColumn<GetPoDetailOutData, String> proPrice) {
        this.proPrice = proPrice;
    }

    public void setOrderQty(TableColumn<GetPoDetailOutData, String> orderQty) {
        this.orderQty = orderQty;
    }

    public void setProFactoryName(TableColumn<GetPoDetailOutData, String> proFactoryName) {
        this.proFactoryName = proFactoryName;
    }

    public void setProPlace(TableColumn<GetPoDetailOutData, String> proPlace) {
        this.proPlace = proPlace;
    }

    public void setProForm(TableColumn<GetPoDetailOutData, String> proForm) {
        this.proForm = proForm;
    }

    public void setProUnit(TableColumn<GetPoDetailOutData, String> proUnit) {
        this.proUnit = proUnit;
    }

    public void setProSpecs(TableColumn<GetPoDetailOutData, String> proSpecs) {
        this.proSpecs = proSpecs;
    }

    public void setProRegisterNo(TableColumn<GetPoDetailOutData, String> proRegisterNo) {
        this.proRegisterNo = proRegisterNo;
    }

    public void setAcceptPoController(AcceptPoController acceptPoController) {
        this.acceptPoController = acceptPoController;
    }

    public void setAddTypeController(AddTypeController addTypeController) {
        this.addTypeController = addTypeController;
    }

    public void setIndexController(IndexController indexController) {
        this.indexController = indexController;
    }

    public boolean equals(Object o) {
        if (o == this) {
            return true;
        }
        if (!(o instanceof AddAcceptPoController)) {
            return false;
        }
        AddAcceptPoController other = (AddAcceptPoController)o;
        if (!other.canEqual(this)) {
            return false;
        }
        if (this.getPageSize() != other.getPageSize()) {
            return false;
        }
        if (this.getDefaultPageCount() != other.getDefaultPageCount()) {
            return false;
        }
        ObservableList<PoOutData> this$observableTableList = this.getObservableTableList();
        ObservableList<PoOutData> other$observableTableList = other.getObservableTableList();
        if (this$observableTableList == null ? other$observableTableList != null : !this$observableTableList.equals(other$observableTableList)) {
            return false;
        }
        ObservableList<GetPoDetailOutData> this$detailObservableTableList = this.getDetailObservableTableList();
        ObservableList<GetPoDetailOutData> other$detailObservableTableList = other.getDetailObservableTableList();
        if (this$detailObservableTableList == null ? other$detailObservableTableList != null : !this$detailObservableTableList.equals(other$detailObservableTableList)) {
            return false;
        }
        AnchorPane this$anchorPane = this.getAnchorPane();
        AnchorPane other$anchorPane = other.getAnchorPane();
        if (this$anchorPane == null ? other$anchorPane != null : !this$anchorPane.equals(other$anchorPane)) {
            return false;
        }
        ScrollPane this$scrollPane = this.getScrollPane();
        ScrollPane other$scrollPane = other.getScrollPane();
        if (this$scrollPane == null ? other$scrollPane != null : !this$scrollPane.equals(other$scrollPane)) {
            return false;
        }
        VBox this$vBox = this.getVBox();
        VBox other$vBox = other.getVBox();
        if (this$vBox == null ? other$vBox != null : !this$vBox.equals(other$vBox)) {
            return false;
        }
        Button this$enterBtn = this.getEnterBtn();
        Button other$enterBtn = other.getEnterBtn();
        if (this$enterBtn == null ? other$enterBtn != null : !this$enterBtn.equals(other$enterBtn)) {
            return false;
        }
        TableView<PoOutData> this$tableView = this.getTableView();
        TableView<PoOutData> other$tableView = other.getTableView();
        if (this$tableView == null ? other$tableView != null : !this$tableView.equals(other$tableView)) {
            return false;
        }
        TableView<GetPoDetailOutData> this$tableView1 = this.getTableView1();
        TableView<GetPoDetailOutData> other$tableView1 = other.getTableView1();
        if (this$tableView1 == null ? other$tableView1 != null : !this$tableView1.equals(other$tableView1)) {
            return false;
        }
        TableColumn<PoOutData, CheckBox> this$checkBox = this.getCheckBox();
        TableColumn<PoOutData, CheckBox> other$checkBox = other.getCheckBox();
        if (this$checkBox == null ? other$checkBox != null : !this$checkBox.equals(other$checkBox)) {
            return false;
        }
        TableColumn<PoOutData, String> this$poId = this.getPoId();
        TableColumn<PoOutData, String> other$poId = other.getPoId();
        if (this$poId == null ? other$poId != null : !this$poId.equals(other$poId)) {
            return false;
        }
        TableColumn<PoOutData, String> this$poDate = this.getPoDate();
        TableColumn<PoOutData, String> other$poDate = other.getPoDate();
        if (this$poDate == null ? other$poDate != null : !this$poDate.equals(other$poDate)) {
            return false;
        }
        TableColumn<PoOutData, String> this$poType = this.getPoType();
        TableColumn<PoOutData, String> other$poType = other.getPoType();
        if (this$poType == null ? other$poType != null : !this$poType.equals(other$poType)) {
            return false;
        }
        TableColumn<PoOutData, String> this$totalAmount = this.getTotalAmount();
        TableColumn<PoOutData, String> other$totalAmount = other.getTotalAmount();
        if (this$totalAmount == null ? other$totalAmount != null : !this$totalAmount.equals(other$totalAmount)) {
            return false;
        }
        TableColumn<PoOutData, String> this$totalQty = this.getTotalQty();
        TableColumn<PoOutData, String> other$totalQty = other.getTotalQty();
        if (this$totalQty == null ? other$totalQty != null : !this$totalQty.equals(other$totalQty)) {
            return false;
        }
        TableColumn<PoOutData, String> this$poApproveStatus = this.getPoApproveStatus();
        TableColumn<PoOutData, String> other$poApproveStatus = other.getPoApproveStatus();
        if (this$poApproveStatus == null ? other$poApproveStatus != null : !this$poApproveStatus.equals(other$poApproveStatus)) {
            return false;
        }
        TableColumn<GetPoDetailOutData, String> this$indexNo = this.getIndexNo();
        TableColumn<GetPoDetailOutData, String> other$indexNo = other.getIndexNo();
        if (this$indexNo == null ? other$indexNo != null : !this$indexNo.equals(other$indexNo)) {
            return false;
        }
        TableColumn<GetPoDetailOutData, String> this$proCode = this.getProCode();
        TableColumn<GetPoDetailOutData, String> other$proCode = other.getProCode();
        if (this$proCode == null ? other$proCode != null : !this$proCode.equals(other$proCode)) {
            return false;
        }
        TableColumn<GetPoDetailOutData, String> this$proName = this.getProName();
        TableColumn<GetPoDetailOutData, String> other$proName = other.getProName();
        if (this$proName == null ? other$proName != null : !this$proName.equals(other$proName)) {
            return false;
        }
        TableColumn<GetPoDetailOutData, String> this$proPrice = this.getProPrice();
        TableColumn<GetPoDetailOutData, String> other$proPrice = other.getProPrice();
        if (this$proPrice == null ? other$proPrice != null : !this$proPrice.equals(other$proPrice)) {
            return false;
        }
        TableColumn<GetPoDetailOutData, String> this$orderQty = this.getOrderQty();
        TableColumn<GetPoDetailOutData, String> other$orderQty = other.getOrderQty();
        if (this$orderQty == null ? other$orderQty != null : !this$orderQty.equals(other$orderQty)) {
            return false;
        }
        TableColumn<GetPoDetailOutData, String> this$proFactoryName = this.getProFactoryName();
        TableColumn<GetPoDetailOutData, String> other$proFactoryName = other.getProFactoryName();
        if (this$proFactoryName == null ? other$proFactoryName != null : !this$proFactoryName.equals(other$proFactoryName)) {
            return false;
        }
        TableColumn<GetPoDetailOutData, String> this$proPlace = this.getProPlace();
        TableColumn<GetPoDetailOutData, String> other$proPlace = other.getProPlace();
        if (this$proPlace == null ? other$proPlace != null : !this$proPlace.equals(other$proPlace)) {
            return false;
        }
        TableColumn<GetPoDetailOutData, String> this$proForm = this.getProForm();
        TableColumn<GetPoDetailOutData, String> other$proForm = other.getProForm();
        if (this$proForm == null ? other$proForm != null : !this$proForm.equals(other$proForm)) {
            return false;
        }
        TableColumn<GetPoDetailOutData, String> this$proUnit = this.getProUnit();
        TableColumn<GetPoDetailOutData, String> other$proUnit = other.getProUnit();
        if (this$proUnit == null ? other$proUnit != null : !this$proUnit.equals(other$proUnit)) {
            return false;
        }
        TableColumn<GetPoDetailOutData, String> this$proSpecs = this.getProSpecs();
        TableColumn<GetPoDetailOutData, String> other$proSpecs = other.getProSpecs();
        if (this$proSpecs == null ? other$proSpecs != null : !this$proSpecs.equals(other$proSpecs)) {
            return false;
        }
        TableColumn<GetPoDetailOutData, String> this$proRegisterNo = this.getProRegisterNo();
        TableColumn<GetPoDetailOutData, String> other$proRegisterNo = other.getProRegisterNo();
        if (this$proRegisterNo == null ? other$proRegisterNo != null : !this$proRegisterNo.equals(other$proRegisterNo)) {
            return false;
        }
        AcceptPoController this$acceptPoController = this.getAcceptPoController();
        AcceptPoController other$acceptPoController = other.getAcceptPoController();
        if (this$acceptPoController == null ? other$acceptPoController != null : !(this$acceptPoController).equals(other$acceptPoController)) {
            return false;
        }
        AddTypeController this$addTypeController = this.getAddTypeController();
        AddTypeController other$addTypeController = other.getAddTypeController();
        if (this$addTypeController == null ? other$addTypeController != null : !(this$addTypeController).equals(other$addTypeController)) {
            return false;
        }
        IndexController this$indexController = this.getIndexController();
        IndexController other$indexController = other.getIndexController();
        return !(this$indexController == null ? other$indexController != null : !(this$indexController).equals(other$indexController));
    }

    protected boolean canEqual(Object other) {
        return other instanceof AddAcceptPoController;
    }

    public int hashCode() {
        int PRIME = 59;
        int result = 1;
        result = result * 59 + this.getPageSize();
        result = result * 59 + this.getDefaultPageCount();
        ObservableList<PoOutData> $observableTableList = this.getObservableTableList();
        result = result * 59 + ($observableTableList == null ? 43 : $observableTableList.hashCode());
        ObservableList<GetPoDetailOutData> $detailObservableTableList = this.getDetailObservableTableList();
        result = result * 59 + ($detailObservableTableList == null ? 43 : $detailObservableTableList.hashCode());
        AnchorPane $anchorPane = this.getAnchorPane();
        result = result * 59 + ($anchorPane == null ? 43 : $anchorPane.hashCode());
        ScrollPane $scrollPane = this.getScrollPane();
        result = result * 59 + ($scrollPane == null ? 43 : $scrollPane.hashCode());
        VBox $vBox = this.getVBox();
        result = result * 59 + ($vBox == null ? 43 : $vBox.hashCode());
        Button $enterBtn = this.getEnterBtn();
        result = result * 59 + ($enterBtn == null ? 43 : $enterBtn.hashCode());
        TableView<PoOutData> $tableView = this.getTableView();
        result = result * 59 + ($tableView == null ? 43 : $tableView.hashCode());
        TableView<GetPoDetailOutData> $tableView1 = this.getTableView1();
        result = result * 59 + ($tableView1 == null ? 43 : $tableView1.hashCode());
        TableColumn<PoOutData, CheckBox> $checkBox = this.getCheckBox();
        result = result * 59 + ($checkBox == null ? 43 : $checkBox.hashCode());
        TableColumn<PoOutData, String> $poId = this.getPoId();
        result = result * 59 + ($poId == null ? 43 : $poId.hashCode());
        TableColumn<PoOutData, String> $poDate = this.getPoDate();
        result = result * 59 + ($poDate == null ? 43 : $poDate.hashCode());
        TableColumn<PoOutData, String> $poType = this.getPoType();
        result = result * 59 + ($poType == null ? 43 : $poType.hashCode());
        TableColumn<PoOutData, String> $totalAmount = this.getTotalAmount();
        result = result * 59 + ($totalAmount == null ? 43 : $totalAmount.hashCode());
        TableColumn<PoOutData, String> $totalQty = this.getTotalQty();
        result = result * 59 + ($totalQty == null ? 43 : $totalQty.hashCode());
        TableColumn<PoOutData, String> $poApproveStatus = this.getPoApproveStatus();
        result = result * 59 + ($poApproveStatus == null ? 43 : $poApproveStatus.hashCode());
        TableColumn<GetPoDetailOutData, String> $indexNo = this.getIndexNo();
        result = result * 59 + ($indexNo == null ? 43 : $indexNo.hashCode());
        TableColumn<GetPoDetailOutData, String> $proCode = this.getProCode();
        result = result * 59 + ($proCode == null ? 43 : $proCode.hashCode());
        TableColumn<GetPoDetailOutData, String> $proName = this.getProName();
        result = result * 59 + ($proName == null ? 43 : $proName.hashCode());
        TableColumn<GetPoDetailOutData, String> $proPrice = this.getProPrice();
        result = result * 59 + ($proPrice == null ? 43 : $proPrice.hashCode());
        TableColumn<GetPoDetailOutData, String> $orderQty = this.getOrderQty();
        result = result * 59 + ($orderQty == null ? 43 : $orderQty.hashCode());
        TableColumn<GetPoDetailOutData, String> $proFactoryName = this.getProFactoryName();
        result = result * 59 + ($proFactoryName == null ? 43 : $proFactoryName.hashCode());
        TableColumn<GetPoDetailOutData, String> $proPlace = this.getProPlace();
        result = result * 59 + ($proPlace == null ? 43 : $proPlace.hashCode());
        TableColumn<GetPoDetailOutData, String> $proForm = this.getProForm();
        result = result * 59 + ($proForm == null ? 43 : $proForm.hashCode());
        TableColumn<GetPoDetailOutData, String> $proUnit = this.getProUnit();
        result = result * 59 + ($proUnit == null ? 43 : $proUnit.hashCode());
        TableColumn<GetPoDetailOutData, String> $proSpecs = this.getProSpecs();
        result = result * 59 + ($proSpecs == null ? 43 : $proSpecs.hashCode());
        TableColumn<GetPoDetailOutData, String> $proRegisterNo = this.getProRegisterNo();
        result = result * 59 + ($proRegisterNo == null ? 43 : $proRegisterNo.hashCode());
        AcceptPoController $acceptPoController = this.getAcceptPoController();
        result = result * 59 + ($acceptPoController == null ? 43 : ($acceptPoController).hashCode());
        AddTypeController $addTypeController = this.getAddTypeController();
        result = result * 59 + ($addTypeController == null ? 43 : ($addTypeController).hashCode());
        IndexController $indexController = this.getIndexController();
        result = result * 59 + ($indexController == null ? 43 : ($indexController).hashCode());
        return result;
    }

    public String toString() {
        return "AddAcceptPoController(pageSize=" + this.getPageSize() + ", defaultPageCount=" + this.getDefaultPageCount() + ", observableTableList=" + this.getObservableTableList() + ", detailObservableTableList=" + this.getDetailObservableTableList() + ", anchorPane=" + this.getAnchorPane() + ", scrollPane=" + this.getScrollPane() + ", vBox=" + this.getVBox() + ", enterBtn=" + this.getEnterBtn() + ", tableView=" + this.getTableView() + ", tableView1=" + this.getTableView1() + ", checkBox=" + this.getCheckBox() + ", poId=" + this.getPoId() + ", poDate=" + this.getPoDate() + ", poType=" + this.getPoType() + ", totalAmount=" + this.getTotalAmount() + ", totalQty=" + this.getTotalQty() + ", poApproveStatus=" + this.getPoApproveStatus() + ", indexNo=" + this.getIndexNo() + ", proCode=" + this.getProCode() + ", proName=" + this.getProName() + ", proPrice=" + this.getProPrice() + ", orderQty=" + this.getOrderQty() + ", proFactoryName=" + this.getProFactoryName() + ", proPlace=" + this.getProPlace() + ", proForm=" + this.getProForm() + ", proUnit=" + this.getProUnit() + ", proSpecs=" + this.getProSpecs() + ", proRegisterNo=" + this.getProRegisterNo() + ", acceptPoController=" + this.getAcceptPoController() + ", addTypeController=" + this.getAddTypeController() + ", indexController=" + this.getIndexController() + ")";
    }
}

